// Copyright 2016-2019 hxmhlt
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package cluster

import (
	"gitee.com/dubbogo/dubbo-go/common"
	"gitee.com/dubbogo/dubbo-go/protocol"
)

// Extension - Router

type RouterFactory interface {
	Router(common.URL) Router
}

type Router interface {
	Route([]protocol.Invoker, common.URL, protocol.Invocation) []protocol.Invoker
}

type RouterChain struct {
	routers []Router
}

func NewRouterChain(url common.URL) {

}
